package com.pattern.observer;

/**
 * @Description: 观察者模式
 * @Author: whp
 * @Date: 2021-01-28 17:16
 */
public interface Observer {

    /*策略模式的应用场景
    策略模式在很多地方用到，如 Java SE 中的容器布局管理就是一个典型的实例，
    Java SE 中的每个容器都存在多种布局供用户选择。在程序设计中，通常在以下几种情况中使用策略模式较多。
    一个系统需要动态地在几种算法中选择一种时，可将每个算法封装到策略类中。
    一个类定义了多种行为，并且这些行为在这个类的操作中以多个条件语句的形式出现，
    可将每个条件分支移入它们各自的策略类中以代替这些条件语句。
    系统中各算法彼此完全独立，且要求对客户隐藏具体算法的实现细节时。
    系统要求使用算法的客户不应该知道其操作的数据时，可使用策略模式来隐藏与算法相关的数据结构。
    多个类只区别在表现行为不同，可以使用策略模式，在运行时动态选择具体要执行的行为。*/

    /*它的主要缺点如下。
    目标与观察者之间的依赖关系并没有完全解除，而且有可能出现循环引用。
    当观察者对象很多时，通知的发布会花费很多时间，影响程序的效率。*/



    void response();

}
